perm filename IPUB[L,MRC] blob
sn#386977 filedate 1979-01-30 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00008 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00003 00002 .<< BASED ON General PUB Macros in GENRAL.PUB[SUB,SYS]
C00004 00003 .REQUIRE "BASIC.PUB[1,lyn]" SOURCE_FILE
C00016 00004 .<< Number sections. >>
C00023 00005 .<< Quote macro. >>
C00024 00006 .<< Put in a footnote. >>
C00025 00007 .<< Generate table of contents. >>
C00034 00008 .<< Set up for body of text. >>
C00035 ENDMK
C⊗;
.<< BASED ON General PUB Macros in GENRAL.PUB[SUB,SYS]
.
. Version 1.1, 4 March 1976
. Brian P. McCune
. ALTERED BY GHB, July 1977 for DISSERTATION
.Documentation for this set of general PUB macros is in GENRAL.BPM[UP,DOC]. >>
.REQUIRE "BASIC.PUB[1,lyn]" SOURCE_FILE ;
.
.
.
.<< Number sections. >>
.
.
.
.<< Generate section heading and table of contents entry. >>
.
. COUNT SECTION FROM 1 TO 99;
.MACRO S(NAME)
. ⊂
. EVERY HEADING(,,);
. EVERY FOOTING(,{PAGE!},);
.
. SECNAME ← SSNAME ← NULL;
. BEGIN "PRINT SECTION HEADING"
. NEXT PAGE;
. NEXT SECTION;
. TURN ON "{#←";
. INDENT 0,4,0;
. NOJUST;
. RETAIN;
. SKIP 6 ;
⊗⊗←CHAPTER # # {SECTION!}⊗
. SKIP 2 ;
⊗⊗←NAME⊗
. SKIP 2;
. SECNAME ← "NAME";
. SEND CONTENTS
. ⊂
. INDENT 0,4,4;
. TURN ON "∞\→#";
. SKIP 1;
. GUARANTEE LINES 2;
{SECTION!}. NAME\∞ ∞.∞ →#{PAGE!}
. ⊃;
. END "PRINT SECTION HEADING";
. EVERY HEADING({SECNAME},,{PAGE!});
. EVERY FOOTING(,,);
. ⊃;
.
.
.<< Generate preliminary pages and table of contents entry. >>
.
.MACRO P(NAME)
. ⊂
. EVERY HEADING(,,);
. EVERY FOOTING(,{PAGE!},);
.
. SECNAME ← SSNAME ← NULL;
. BEGIN "PRINT SECTION HEADING"
. NEXT PAGE;
. TURN ON "{#←";
. INDENT 0,4,0;
. NOJUST;
. RETAIN;
. SKIP 6 ;
⊗⊗←NAME⊗
. SKIP 2;
. SECNAME ← "NAME";
. SEND CONTENTS
. ⊂
. INDENT 0,4,4;
. TURN ON "∞\→#";
. SKIP 1;
. GUARANTEE LINES 2;
NAME\∞ ∞.∞ →#{PAGE!}
. ⊃;
. END "PRINT SECTION HEADING";
. EVERY HEADING({SECNAME},,{PAGE!});
. EVERY FOOTING(,,);
. ⊃;
.
.
.<< Generate subsection heading and table of contents entry. >>
.
. << COUNT SUBSECTION FROM 1 TO 99 IN SECTION PRINTING "!.1"; >>
.MACRO SS(NAME)
. ⊂
. SSNAME ← NULL;
. BEGIN "PRINT SUBSECTION HEADING"
.<< IF LINES < (5+5*LINESPACING) THEN SKIP TO LINE 1 ELSE SKIP 1; >>
. IF LINES < 6 THEN SKIP TO LINE 1 ELSE SKIP 1;
. << NEXT SUBSECTION; >>
. TURN ON "{";
. INDENT 3,8,0;
. NOJUST;
. RETAIN;
.<< ⊗⊗{SUBSECTION!} NAME⊗ >>
⊗⊗NAME⊗
. SSNAME ← "NAME";
. SEND CONTENTS
. ⊂
. INDENT 4,9,4;
. GUARANTEE LINES 2;
.<< {SUBSECTION!} NAME\∞ ∞.∞ →#{PAGE!} >>
NAME\∞ ∞.∞ →#{PAGE!}
. ⊃;
. END "PRINT SUBSECTION HEADING";
. ⊃;
.
.<< Generate subsubsection heading and table of contents entry. >>
.
.<< COUNT SUB2 FROM 1 TO 99 IN SUBSECTION PRINTING "!.1"; >>
.MACRO SSS(NAME)
. ⊂
. BEGIN "PRINT SUBSUBSECTION HEADING"
.<< IF LINES < (5+5*LINESPACING) THEN SKIP TO LINE 1 ELSE SKIP 1; >>
. IF LINES < 6 THEN SKIP TO LINE 1 ELSE SKIP 1;
. << NEXT SUB2; >>
. TURN ON "{";
. INDENT 6,13,0;
. NOJUST;
. RETAIN;
.<< ⊗⊗{SUB2!} NAME⊗ >>
⊗⊗NAME⊗
. SEND CONTENTS
. ⊂
. INDENT 9,16,4;
. GUARANTEE LINES 2;
.<< {SUB2!} NAME\∞ ∞.∞ →#{PAGE!} >>
NAME\∞ ∞.∞ →#{PAGE!}
. ⊃;
. END "PRINT SUBSUBSECTION HEADING";
. ⊃;
.
.<< Generate appendix heading and table of contents entry. >>
.
.COUNT APPENDIX FROM 1 TO 99 PRINTING "I";
.MACRO APP(NAME)
. ⊂
. SECNAME ← SSNAME ← NULL;
. BEGIN "PRINT APPENDIX HEADING"
. NEXT PAGE;
. NEXT APPENDIX;
. EVERY HEADING(,,);
. EVERY FOOTING(,{PAGE!},);
. TURN ON "{←";
. INDENT 0,4,0;
. NOJUST;
. RETAIN;
←⊗⊗Appendix {APPENDIX!}.⊗
. SKIP 2;
⊗⊗←NAME⊗
. SKIP 1;
. SECNAME ← "Appendix " & APPENDIX!;
. SSNAME ← "NAME";
.<< IF APPENDIX = 1 THEN
.<< . BEGIN "FIRST TIME"
.<< . SECTYPE ← "Appendix";
.<< . SEND CONTENTS
.<< . ⊂
.<< . IF LINES < (6 + 4*LINESPACING)
.<< . THEN SKIP TO LINE 1
.<< . ELSE SKIP 2;
.<< . INDENT 12,18,0;
.<< ⊗⊗Appendix→Page⊗
.<< . ⊃;
.<< . EVERY HEADING({SECNAME},,{PAGE!});
.<< . EVERY FOOTING(,,);
.<< . END "FIRST TIME";
. >>
. EVERY HEADING({SECNAME},,{PAGE!});
. EVERY FOOTING(,,);
. SEND CONTENTS
. ⊂
. SKIP 1;
. INDENT 0,4,4;
. TURN ON "∞\→#";
. GUARANTEE LINES 2;
Appendix {APPENDIX!}. NAME\∞ ∞.∞ →#{PAGE!}
. ⊃;
. END "PRINT APPENDIX HEADING";
. ⊃;
.
.<< Generate centered subtitle heading without table of contents entry. >>
.
.MACRO CB(TITLE)
. ⊂
. BEGIN "PRINT CENTERED HEADING"
. TURN ON "←";
. IF LINES < (3*LINESPACING) THEN SKIP TO LINE 1;
⊗⊗←TITLE⊗
. END "PRINT CENTERED HEADING";
. ⊃;
.<< Quote macro. >>
.
.MACRO XQUOTE
. ⊂
. SPACING 0;
. PREFACE 1;
. NARROW 10,5;
. INDENT 0,0,0;
. ⊃;
.
.<< Put in a footnote. >>
.
.COUNT FOOTNOTE INLINE FROM 1 TO 999 IN SECTION PRINTING "%51%*";
.FOOTSEP ← "__________";
.AT "∪∪" ENTRY "∪"
. ⊂
. NEXT FOOTNOTE;
. FOOTNOTE!;
. SEND FOOT
. ⊂
. BEGIN "NEXT FOOTNOTE"
. VARIABLE LSAV,RSAV;
. SELECT 1;
. INDENT 5,0,0;
. TURN ON "{#";
. LSAV←LMARG;
. RSAV←RMARG;
. LMARG←0;
. RMARG←PAGE_WIDTH;
. JUSTIFY;
. SPACES 1;
{FOOTNOTE!} # ENTRY
. LMARG←LSAV;
. RMARG←RSAV;
. END "NEXT FOOTNOTE";
. ⊃;
. ⊃;
.
.<< Generate table of contents. >>
.
.MACRO COLLECT CONTENTS
. ⊂
. COUNT PAGE FROM 1 TO 99 PRINTING "i";
. EVERY HEADING(Table of Contents,,{PAGE!});
.<< REQUIRE "ACKNOW[MUS,GHB]" SOURCE_FILE; >>
. PORTION CONTENTS;
. TURN ON "{#\∞→";
. FILL;
. NOJUST;
. RETAIN;
. CRBREAK;
. TABS 9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75;
. PREFACE SPREAD - 1;
. SECTYPE ← "Chapter";
. MACRO GUARANTEE LINES(MINIMUM_LINES)
. ⊂
. IF LINES < (MINIMUM_LINES*SPREAD + SPREAD - 1) THEN
. BEGIN "NEW COLUMN"
. SKIP TO LINE 1;
. INDENT 12,18,0;
⊗⊗{SECTYPE}→Page⊗
. END "NEW COLUMN";
. ⊃;
. INDENT 12,18,0;
⊗⊗Chapter→Page⊗
. TURN ON "∞" ;
. RECEIVE;
. ⊃;
.
.<< Set up for body of text. >>
.
.<< PORTION MAIN >>
.
. EVERY HEADING({SECNAME},{date},{PAGE!});
. EVERY FOOTING(,,);
. SECNAME ← SSNAME ← NULL;
.
. SELECT 1;
. JUSTIFY;
. COUNT PAGE FROM 1 TO 999;
. SPACES 2;
. INDENT 5;